[アップデート]利用可能な EKS バージョンを取得するために、DescribeClusterVersions API が追加されました

[アップデート]利用可能な EKS バージョンを取得するために、DescribeClusterVersions API が追加されました

EKS の API に DescribeClusterVersions が追加されました!

https://aws.amazon.com/jp/about-aws/whats-new/2024/12/amazon-eks-access-kubernetes-version-availability/

https://awsapichanges.com/archive/changes/64391d-eks.html

本 API を利用することで、現在利用可能な EKS バージョンや EOS 情報を取得することができます。
4 年前からあった issue が遂に対応された形になります...!

https://github.com/aws/containers-roadmap/issues/1937

EKS の各バージョンに対応するプラットフォームバージョンと Kubernetes マイナーバージョンも同じ API 経由で取得できるようになりました。

https://github.com/aws/containers-roadmap/issues/982

これが最適だったのかは知りませんが、これまで EOS 情報は公式ドキュメントから確認してました。

https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html

クラスターバージョンに対応するプラットフォームバージョン、マイナーバージョンも下記ドキュメントを見て確認していました。

https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html

ブックマークしておけば良いのですが、API 経由で取得できるに越したことはないですよね!
地味ですが、かなり嬉しいです。

プラットフォームバージョンは EKS のバージョンであり、Kubernetes のバージョンとして規定されるクラスターバージョンより細かい単位として存在します。バージョン 1.30 の EKS の中に eks.7、eks.8 といった複数のバージョンがあり、セキュリティパッチの適用やコントロールプレーンのアップデートに対応してバージョンが上がっていきます。各プラットフォームバージョンには、パッチバージョンも含めた完全な Kubernetes バージョンが紐づきます。

実際に取得してみた

AWS CLI は v2 最新の 2.22.26 を利用しました。

% aws --version
aws-cli/2.22.26 Python/3.12.6 Darwin/23.5.0 exe/x86_64

コマンドを実行してみます。

% aws eks describe-cluster-versions
{
    "clusterVersions": [
        {
            "clusterVersion": "1.31",
            "clusterType": "eks",
            "defaultPlatformVersion": "eks.15",
            "defaultVersion": true,
            "releaseDate": "2024-09-26T09:00:00+09:00",
            "endOfStandardSupportDate": "2025-11-26T09:00:00+09:00",
            "endOfExtendedSupportDate": "2026-11-26T09:00:00+09:00",
            "status": "STANDARD_SUPPORT",
            "kubernetesPatchVersion": "1.31.3"
        },
        {
            "clusterVersion": "1.30",
            "clusterType": "eks",
            "defaultPlatformVersion": "eks.23",
            "defaultVersion": false,
            "releaseDate": "2024-05-23T09:00:00+09:00",
            "endOfStandardSupportDate": "2025-07-23T09:00:00+09:00",
            "endOfExtendedSupportDate": "2026-07-23T09:00:00+09:00",
            "status": "STANDARD_SUPPORT",
            "kubernetesPatchVersion": "1.30.7"
        },
        {
            "clusterVersion": "1.29",
            "clusterType": "eks",
            "defaultPlatformVersion": "eks.26",
            "defaultVersion": false,
            "releaseDate": "2024-01-23T09:00:00+09:00",
            "endOfStandardSupportDate": "2025-03-23T09:00:00+09:00",
            "endOfExtendedSupportDate": "2026-03-23T09:00:00+09:00",
            "status": "STANDARD_SUPPORT",
            "kubernetesPatchVersion": "1.29.11"
        },
        {
            "clusterVersion": "1.28",
            "clusterType": "eks",
            "defaultPlatformVersion": "eks.32",
            "defaultVersion": false,
            "releaseDate": "2023-09-26T09:00:00+09:00",
            "endOfStandardSupportDate": "2024-11-26T09:00:00+09:00",
            "endOfExtendedSupportDate": "2025-11-26T09:00:00+09:00",
            "status": "EXTENDED_SUPPORT",
            "kubernetesPatchVersion": "1.28.15"
        },
        {
            "clusterVersion": "1.27",
            "clusterType": "eks",
            "defaultPlatformVersion": "eks.36",
            "defaultVersion": false,
            "releaseDate": "2023-05-24T09:00:00+09:00",
            "endOfStandardSupportDate": "2024-07-24T09:00:00+09:00",
            "endOfExtendedSupportDate": "2025-07-24T09:00:00+09:00",
            "status": "EXTENDED_SUPPORT",
            "kubernetesPatchVersion": "1.27.16"
        },
        {
            "clusterVersion": "1.26",
            "clusterType": "eks",
            "defaultPlatformVersion": "eks.38",
            "defaultVersion": false,
            "releaseDate": "2023-04-11T09:00:00+09:00",
            "endOfStandardSupportDate": "2024-06-11T09:00:00+09:00",
            "endOfExtendedSupportDate": "2025-06-11T09:00:00+09:00",
            "status": "EXTENDED_SUPPORT",
            "kubernetesPatchVersion": "1.26.15"
        },
        {
            "clusterVersion": "1.25",
            "clusterType": "eks",
            "defaultPlatformVersion": "eks.38",
            "defaultVersion": false,
            "releaseDate": "2023-02-22T09:00:00+09:00",
            "endOfStandardSupportDate": "2024-05-01T09:00:00+09:00",
            "endOfExtendedSupportDate": "2025-05-01T09:00:00+09:00",
            "status": "EXTENDED_SUPPORT",
            "kubernetesPatchVersion": "1.25.16"
        },
        {
            "clusterVersion": "1.24",
            "clusterType": "eks",
            "defaultPlatformVersion": "eks.42",
            "defaultVersion": false,
            "releaseDate": "2022-11-10T09:00:00+09:00",
            "endOfStandardSupportDate": "2024-01-31T09:00:00+09:00",
            "endOfExtendedSupportDate": "2025-01-31T09:00:00+09:00",
            "status": "EXTENDED_SUPPORT",
            "kubernetesPatchVersion": "1.24.17"
        }
    ]
}

延長サポートで利用できるバージョン、標準サポートで利用できるバージョンがそれぞれぱっとわかって良いですね。
現在の各クラスターバージョンで利用されている Kubernetes パッチバージョンもさくっと確認できています。

まとめ

Auto Mode や Hybrid Node など直近は派手なアップデートが多かった EKS ですが、年末に地味だけど待望のアップデートが来ました。
EKS のバージョンアップに関する体験は改善され続けているので、便利になっていくことに感謝しつつ使い倒していきたいですね!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.